#define _CRT_SECURE_NO_WARNINGS 1 
#include<iostream>
using namespace std;
#include"priority_queue.h"
#include"queue.h"
#include"stack.h"
#include<deque>
#include<vector>

#include<algorithm>


int main()
{
	stack<int> s1;
	for (int i = 0; i < 10; i++) { s1.push(i); }

	while (!s1.empty())
	{
		cout << s1.top() << ":" << s1.size() << endl;
		s1.pop();
	}

	cout << endl;
	queue<int> q1;
	for (int i = 0; i < 10; i++) { q1.push(i); }

	while (!q1.empty())
	{
		cout << q1.front() << ":" << q1.size() << endl;
		q1.pop();
	}

	priority_queue<int,vector<int>,Less<int>> pq;
	for (int i = 0; i < 10; i++) { pq.push(i); }


	while (!pq.empty())
	{
		cout << pq.top() << " ";
		pq.pop();
	}
	cout <<endl<< pq.size() << endl;

	priority_queue<int, vector<int>, Greater<int>> pq2;
	for (int i = 0; i < 10; i++) { pq2.push(i); }

	while (!pq2.empty())
	{
		cout << pq2.top() << " ";
		pq2.pop();
	}
	cout << endl << pq2.size() << endl;
	return 0;
}
